const express = require('express');

let server1 = express();

// get方法中的路径可以传正则表达式，也可以传一些特殊值。比如这个例子就是用id当做占位，意思就是/index/xxxxx格式的都行
server1.get('/index/:id',(req,res)=>{
    res.send('1231');
})

server1.listen(7731,()=>console.log('server start'));

//-----------------------------------------------------------------------------

// 另外，我们在后面的开发中可能每个路由的回调函数因为业务需求可能会有很多的东西要执行，这就导致回调函数会很长。不利于观察与维护。所以express支持n个回调函数，用法请看下面代码实例.
let server2 = express();

// 注意，当你的get方法有多个回调函数的时候，除了最后一个，其他的都要加入一个next参数，并在想要调用下一个回调函数的时候next()，这样express才会往下执行。否则判断为不需要执行后面的回调。
server2.get('/index2/test',(req,res,next)=>{
    if(false){
        res.send('error')
    }
    else{
        next();
    }
},(req,res)=>{
    res.send('第二层函数调用了');
});

server2.listen(7732,()=>console.log('server start'));

//如果你觉着这样写不够优雅，你还可以这么写
let server3 = express();

let fun1 = (req,res,next)=>{
    if(false){
        res.send('error')
    }
    else{
        next();
    }
}

let fun2 = (req,res,next)=>{
    res.send('第二层函数通过数组形式写法调用了');
}

// 把所有的函数封装成变量，按顺序写到数组里
server3.get('/index/test2',[fun1,fun2]);
server3.listen(8889,()=>{console.log('server start')});